<header>
    #include &lt;stdio.h&gt;
</header>
<h2>
    库函数
</h2>
<table>
    <thead>
        <tr>
            <th>序号</th>
            <th>函数 &amp; 描述</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>
                <div class="warn">int fclose(FILE *stream)</div>关闭流 stream。刷新所有的缓冲区。
            </td>
        </tr>
        <tr>
            <td>2</td>
            <td>
                <div class="warn">void clearerr(FILE *stream)</div>清除给定流 stream 的文件结束和错误标识符。
            </td>
        </tr>
        <tr>
            <td>3</td>
            <td>
                <div class="warn">int feof(FILE *stream)</div>测试给定流 stream 的文件结束标识符。
            </td>
        </tr>
        <tr>
            <td>4</td>
            <td>
                <div class="warn">int ferror(FILE *stream)</div>测试给定流 stream 的错误标识符。
            </td>
        </tr>
        <tr>
            <td>5</td>
            <td>
                <div class="warn">int fflush(FILE *stream)</div>刷新流 stream 的输出缓冲区。
            </td>
        </tr>
        <tr>
            <td>6</td>
            <td>
                <div class="warn">int fgetpos(FILE *stream, fpos_t *pos)</div>获取流 stream
                的当前文件位置，并把它写入到 pos。
            </td>
        </tr>
        <tr>
            <td>7</td>
            <td>
                <div class="warn">FILE *fopen(const char *filename, const char *mode)</div>使用给定的模式 mode
                打开 filename 所指向的文件。
            </td>
        </tr>
        <tr>
            <td>8</td>
            <td>
                <div class="warn">size_t fread(void *ptr, size_t size, size_t nmemb, FILE
                    *stream)</div>从给定流 stream 读取数据到 ptr 所指向的数组中。
            </td>
        </tr>
        <tr>
            <td>9</td>
            <td>
                <div class="warn">FILE *freopen(const char *filename, const char *mode, FILE
                    *stream)</div>把一个新的文件名 filename 与给定的打开的流 stream 关联，同时关闭流中的旧文件。
            </td>
        </tr>
        <tr>
            <td>10</td>
            <td>
                <div class="warn">int fseek(FILE *stream, long int offset, int whence)</div>设置流 stream
                的文件位置为给定的偏移 offset，参数 <i>offset</i> 意味着从给定的 <i>whence</i> 位置查找的字节数。
            </td>
        </tr>
        <tr>
            <td>11</td>
            <td>
                <div class="warn">int fsetpos(FILE *stream, const fpos_t *pos)</div>设置给定流 stream
                的文件位置为给定的位置。参数 <i>pos</i> 是由函数 fgetpos 给定的位置。
            </td>
        </tr>
        <tr>
            <td>12</td>
            <td>
                <div class="warn">long int ftell(FILE *stream)</div>返回给定流 stream 的当前文件位置。
            </td>
        </tr>
        <tr>
            <td>13</td>
            <td>
                <div class="warn">size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE
                    *stream)</div>把 ptr 所指向的数组中的数据写入到给定流 stream 中。
            </td>
        </tr>
        <tr>
            <td>14</td>
            <td>
                <div class="warn">int remove(const char *filename)</div>删除给定的文件名 filename，以便它不再被访问。
            </td>
        </tr>
        <tr>
            <td>15</td>
            <td>
                <div class="warn">int rename(const char *old_filename, const char *new_filename)</div>把
                old_filename 所指向的文件名改为 new_filename。
            </td>
        </tr>
        <tr>
            <td>16</td>
            <td>
                <div class="warn">void rewind(FILE *stream)</div>设置文件位置为给定流 stream 的文件的开头。
            </td>
        </tr>
        <tr>
            <td>17</td>
            <td>
                <div class="warn">void setbuf(FILE *stream, char *buffer)</div>定义流 stream 应如何缓冲。
            </td>
        </tr>
        <tr>
            <td>18</td>
            <td>
                <div class="warn">int setvbuf(FILE *stream, char *buffer, int mode, size_t
                    size)</div>另一个定义流 stream 应如何缓冲的函数。
            </td>
        </tr>
        <tr>
            <td>19</td>
            <td>
                <div class="warn">FILE *tmpfile(void)</div>以二进制更新模式(wb+)创建临时文件。
            </td>
        </tr>
        <tr>
            <td>20</td>
            <td>
                <div class="warn">char *tmpnam(char *str)</div>生成并返回一个有效的临时文件名，该文件名之前是不存在的。
            </td>
        </tr>
        <tr>
            <td>21</td>
            <td>
                <div class="warn">int fprintf(FILE *stream, const char *format, ...)</div>发送格式化输出到流
                stream 中。
            </td>
        </tr>
        <tr>
            <td>22</td>
            <td>
                <div class="warn">int printf(const char *format, ...)</div>发送格式化输出到标准输出 stdout。
            </td>
        </tr>
        <tr>
            <td>23</td>
            <td>
                <div class="warn">int sprintf(char *str, const char *format, ...)</div>发送格式化输出到字符串。
            </td>
        </tr>
        <tr>
            <td>24</td>
            <td>
                <div class="warn">int vfprintf(FILE *stream, const char *format, va_list
                    arg)</div>使用参数列表发送格式化输出到流 stream 中。
            </td>
        </tr>
        <tr>
            <td>25</td>
            <td>
                <div class="warn">int vprintf(const char *format, va_list arg)</div>使用参数列表发送格式化输出到标准输出
                stdout。
            </td>
        </tr>
        <tr>
            <td>26</td>
            <td>
                <div class="warn">int vsprintf(char *str, const char *format, va_list
                    arg)</div>使用参数列表发送格式化输出到字符串。
            </td>
        </tr>
        <tr>
            <td>27</td>
            <td>
                <div class="warn">int fscanf(FILE *stream, const char *format, ...)</div>从流 stream
                读取格式化输入。
            </td>
        </tr>
        <tr>
            <td>28</td>
            <td>
                <div class="warn">int scanf(const char *format, ...)</div>从标准输入 stdin 读取格式化输入。
            </td>
        </tr>
        <tr>
            <td>29</td>
            <td>
                <div class="warn">int sscanf(const char *str, const char *format,
                    ...)</div>从字符串读取格式化输入。
            </td>
        </tr>
        <tr>
            <td>30</td>
            <td>
                <div class="warn">int fgetc(FILE *stream)</div>从指定的流 stream
                获取下一个字符（一个无符号字符），并把位置标识符往前移动。
            </td>
        </tr>
        <tr>
            <td>31</td>
            <td>
                <div class="warn">char *fgets(char *str, int n, FILE *stream)</div>从指定的流 stream
                读取一行，并把它存储在 str 所指向的字符串内。当读取 <b>(n-1)</b> 个字符时，或者读取到换行符时，或者到达文件末尾时，它会停止，具体视情况而定。
            </td>
        </tr>
        <tr>
            <td>32</td>
            <td>
                <div class="warn">int fputc(int char, FILE *stream)</div>把参数 char 指定的字符（一个无符号字符）写入到指定的流
                stream 中，并把位置标识符往前移动。
            </td>
        </tr>
        <tr>
            <td>33</td>
            <td>
                <div class="warn">int fputs(const char *str, FILE *stream)</div>把字符串写入到指定的流 stream
                中，但不包括空字符。
            </td>
        </tr>
        <tr>
            <td>34</td>
            <td>
                <div class="warn">int getc(FILE *stream)</div>从指定的流 stream 获取下一个字符（一个无符号字符），并把位置标识符往前移动。
            </td>
        </tr>
        <tr>
            <td>35</td>
            <td>
                <div class="warn">int getchar(void)</div>从标准输入 stdin 获取一个字符（一个无符号字符）。
            </td>
        </tr>
        <tr>
            <td>36</td>
            <td>
                <div class="warn">char *gets(char *str)</div>从标准输入 stdin 读取一行，并把它存储在 str
                所指向的字符串中。当读取到换行符时，或者到达文件末尾时，它会停止，具体视情况而定。
            </td>
        </tr>
        <tr>
            <td>37</td>
            <td>
                <div class="warn">int putc(int char, FILE *stream)</div>把参数 char 指定的字符（一个无符号字符）写入到指定的流
                stream 中，并把位置标识符往前移动。
            </td>
        </tr>
        <tr>
            <td>38</td>
            <td>
                <div class="warn">int putchar(int char)</div>把参数 char 指定的字符（一个无符号字符）写入到标准输出 stdout 中。
            </td>
        </tr>
        <tr>
            <td>39</td>
            <td>
                <div class="warn">int puts(const char *str)</div>把一个字符串写入到标准输出
                stdout，直到空字符，但不包括空字符。换行符会被追加到输出中。
            </td>
        </tr>
        <tr>
            <td>40</td>
            <td>
                <div class="warn">int ungetc(int char, FILE *stream)</div>把字符 char（一个无符号字符）推入到指定的流
                stream 中，以便它是下一个被读取到的字符。
            </td>
        </tr>
        <tr>
            <td>41</td>
            <td>
                <div class="warn">void perror(const char *str)</div>把一个描述性错误消息输出到标准错误 stderr。首先输出字符串
                str，后跟一个冒号，然后是一个空格。
            </td>
        </tr>
        <tr>
            <td>42</td>
            <td>
                <div class="warn">int snprintf(char *str, size_t size, const char *format,
                    ...)</div>格式字符串到 str 中。
            </td>
        </tr>
    </tbody>
</table>